Esta questão já tem respostas aqui: Express js - não é possível redirecionar (4 respostas) Fechado há 7 anos. Estou usando passportjs com um middleware abaixo. É para verificar se o usuário está logado quando solicita certas coisas. Se ele não estiver conectado, ele deve ser redirecionado para a página de login. Tenho uma rota de solicitação da seguinte forma: app.put ('/ fantasyteams /: fantasyTeamId', auth.requiresLogin, fantasyteams.update); Esta rota será chamada quando o usuário tentar atualizar um recurso chamado Fantasy Team no site auth.requiresLogin é um middleware da seguinte forma: exportações.requiresLogin = função (req, res, próximo) { if (req.isAuthenticated ()) { voltar a seguir () } return res.redirect ("/ signin"); }; Depois de fazer login no meu usuário, simulei a expiração da sessão excluindo o cookie da sessão. Posteriormente, através do site, fiz uma solicitação PUT '/ fantasyteams / 123' para atualizar o time fantasia número 123. fantasygames.update é simplesmente uma operação de salvamento do mongodb / mongoose: exportações.atualização = função (req, res) { var fantasyteam = req.fantasyteam; fantasyteam = _.extend (fantasyteam, req.body); fantasyteam.save (function (err) { res.jsonp (equipe de fantasia); }); }; Como esperado, o gerenciador de rotas (app.put ...) acima pegou a solicitação, passe-a para o middleware auth.requiresLogin para verificar se o usuário está conectado. Portanto, acontece que o usuário não está conectado desde que eu excluí seu cookie de sessão. res.redirect é chamado conforme o esperado. No entanto, o site não redireciona para a página de login. Eu vejo isso nos logs de comando do node.js. PUT / signin 404 328ms O que eu fiz errado?
2021-02-25 08:21:21
Parece que o problema é que você não tem um gerenciador de rota para PUT / signin. A solicitação original era um put, portanto, quando ele redireciona, ainda faz parte da mesma solicitação "put" do navegador. Basta adicionar um manipulador para put / post / qualquer coisa com app.all ('/ signin') 3 | Não é a resposta que você está procurando? Navegue por outras perguntas com cookies de sessão node.js marcados como passport.js ou faça sua própria pergunta.